package com.ming.config.properties;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 文件上传配置属性
 */
@Data
@Component
@ConfigurationProperties(prefix = "file")
public class FileUploadProperties {

    /**
     * 存储类型：local（本地磁盘）, oss（阿里云OSS）
     */
    private String type = "local";

    /**
     * 本地存储配置
     */
    private LocalConfig local = new LocalConfig();

    /**
     * OSS存储配置
     */
    private OSSConfig oss = new OSSConfig();

    /**
     * 本地存储配置
     */
    @Data
    public static class LocalConfig {
        /**
         * 文件存储路径
         */
        private String uploadPath = "D:/tlias-uploads";

        /**
         * 文件访问URL前缀
         */
        private String accessUrl = "http://localhost:8080/files";
    }

    /**
     * OSS存储配置
     */
    @Data
    public static class OSSConfig {
        /**
         * OSS端点
         */
        private String endpoint;

        /**
         * 访问密钥ID
         */
        private String accessKeyId;

        /**
         * 访问密钥Secret
         */
        private String accessKeySecret;

        /**
         * 存储桶名称
         */
        private String bucketName;

        /**
         * URL前缀
         */
        private String urlPrefix;

        /**
         * 路径前缀
         */
        private String pathPrefix = "";
    }
}